<?php

	class SiteGroup {
		
		
		public $id;
		public $name;
		public $langcode;
		public $isHidden;
		/**
		 * Site objektumok tömbje, ezek tartoznak alánk
		 * @var array
		 */
		public $sites;
		
		
		public function SiteGroup($_id, $_langcode, $_name, $_isHidden = false)
		{
			$this->id = $_id;
			$this->name = $_name;
			$this->langcode = $_langcode;
			$this->isHidden = $_isHidden;
			$this->initSitesArray();
		}
		
		
		/**
		 * Befutja a site-okat a SiteHandler segítségével és amelyik hozzánk tartozik annak a Site
		 * objektumát berakja a tömbbe
		 *
		 */
		public function initSitesArray()
		{
			$this->sites = array();
			
			$sites = SiteHandler::getSites();
			foreach($sites as $siteId => $siteObj)
			{
				$groupId = $siteObj->getAttribute("sitegroup");
				if($groupId == $this->id)
					array_push($this->sites, $siteObj);
			}
		}
		
		/**
		 * Visszaadja h melyik site-ra kell átváltani abban az esetben, ha ez a csoport lesz aktiválva
		 *
		 * @return Site a site vagy null ha nem lehet mire váltani (a csoport mondjuk üres)
		 */
		public function getDefaultSite()
		{
			if(count($this->sites) == 0)
				return null;
				
			foreach($this->sites as $siteObj)
			{
				if($siteObj->getAttribute("defingroup") === true)
					return $siteObj;
			}
			
			return $this->sites[0];
		}
		
		
		public function __toString()
		{
			return "SiteGroup (id=$this->id, name=\"$this->name ($this->langcode)\")";
		}
		
		/**
		 * A site_group db rekordból készít egy SiteGroup objektumot és visszaadja azt
		 *
		 * @param array $siteGroupRecord
		 * @return SiteGroup
		 */
		public static function createFromDBRecord($siteGroupRecord)
		{
			return new SiteGroup(intval($siteGroupRecord['id']), $siteGroupRecord['langcode'], $siteGroupRecord['name'], DBUtil::decodeBooleanFieldValue($siteGroupRecord['is_hidden']));
		}
		
	}
?>